#ifndef SOUNDMANAGER_H_
#define SOUNDMANAGER_H_

// By: Jesse Guarascia de Urena
// Sound Manager class
// Deals with Mix_Chunk and Mix_Music files

#include "SoundFile.h"
#include "MusicFile.h"
#include <string>
#include <map>

class SoundManager
{
private:
	std::map<int, SoundFile *> sound; // Sound map
	std::map<int, MusicFile *> music; // Music map

	bool SoundExist(int soundID); // Check if a sound file exists
	bool MusicExist(int musicID); // Check if a music file exists

public:
	SoundManager(void);
	~SoundManager(void);

	// Set the sound level of music/sound
	void SetMusicVol(int volume);
	void SetSoundVol(int volume);

	// Load a sound/music
	int LoadSound(std::string file);
	int LoadMusic(std::string file);

	// Delete a sound/music
	void DeleteSound(int &soundID);
	void DeleteMusic(int &musicID);

	// Play a sound/music
	void PlaySound(int soundID);
	void PlayMusic(int musicID);

	// Stop/Pause/Resume a sound
	void StopSound(int soundID);
	void PauseSound(int soundID);
	void ResumeSound(int soundID);
};

#endif // SOUNDMANAGER_H_
